#include "jagung.h"
#include <iostream>
using namespace std;

//constructor
//	inisialisasi:
//	  	plant_id = 0
//		tingkat_dewasa = 10
//		int tingkat_panen = 20
//		repanenable = true
//		musim_tumbuh = 1(hujan)
//		umur = 25
Jagung::Jagung() : Plant(6,5,7,true,0,17)
{
	penurunan_tingkat_panen = 2;
}
	
//copyconstructor
Jagung::Jagung(const Jagung& a) : Plant(6,5,a.GetTingkatPanen(),true,0,a.GetUmur())
{
	happy_meter = a.GetHappyMeter();
	iswatered = a.isWatered();
	x = a.GetX();
	y = a.GetY();
	penurunan_tingkat_panen = 2;
}

//destruktor
Jagung::~Jagung()
{	
}

//abstract void watered()
//	Tanaman disiram, jika iswatered==false && isMati()==false(jika tanaman tidak mati), naikkan happy_meter(berapa besar kenaikannya ditentukan di kelas anak)
//		trus iswatered = true(JANGAN LUPA)
//
//	jika iswatered==true, tidak ada perubahan
void Jagung::watered()
{
	if(!isWatered() && !isMati()) {//jika belom disiram dan belom mati
		iswatered = true;
	}
}

//void harvested()
//	tanaman HANYA BISA dipanen jika mencapai happy_meter == tingkat_panen
//	Tanaman dipanen, jika repanenable==true, kurangi tingkat_panen sebanyak 2(minimum penurunan sampe tingkat dewasa)
//	PEMBUATAN BUAH TIDAK DILAKUKAN DI METHOD INI
//	jika repanenable==false, matikan tanaman(jadiin umurnya 0)
void Jagung::harvested()
{
	//cout << "ini cabai.tq" << endl;
	if(isHarvest()){
		if(isRepanenable()) {
			if(tingkat_panen - penurunan_tingkat_panen >= tingkat_dewasa) {
				tingkat_panen -= penurunan_tingkat_panen;
				happy_meter = tingkat_dewasa;
				if(tingkat_panen==tingkat_dewasa){
					SetUmur(0);
				}
			}else{
				SetUmur(0);
			}
		}else{
			SetUmur(0);
		}
	}
}
